This disclosure relates to data processing and storage, and more specifically, to efficient initialization of a thinly provisioned data storage system, such as a flash memory system.
The physical storage media of data storage systems can be managed utilizing different management techniques, including thick and thin provisioning. In thick provisioning, storage volumes are created by a storage manager with the entire size of the volume pre-allocated on physical storage media when the volume is created. While simplifying implementation and management, thick provisioning can leave large amounts of storage capacity unused. Thin provisioning, on the other hand, promotes greater utilization of storage capacity by allowing the storage manager to over-allocate volume sizes with respect to the actual capacity of the physical storage media and then subsequently reserve physical storage for a volume as needed. Consequently, in a data storage system employing thin provisioning (and/or other functions such as volume migration), storage extents are constantly being allocated to a volume and then freed.
With enterprise-class storage, each sector of the storage contains additional metadata utilized by the storage manager to perform integrity checking. For example, in one common implementation, the metadata can be a T10 standard data integrity field (DIF). Currently, when a storage extent allocated to a volume is freed, the storage extent is written with data of all zeros. When the storage extent is subsequently allocated to another volume, the storage extent is again initialized by writing the extent with data of all zeros and by computing and writing the corresponding metadata for each sector to the storage extent.